#include "add_dsl.h"
namespace ge {

IMPLEMT_COMMON_INFERFUNC(AddDSLInferShape)
{
    // 获取输出数据描述
    TensorDesc tensordesc_output = op.GetOutputDescByName("y");
    tensordesc_output.SetShape(op.GetInputDescByName("x1").GetShape());
    tensordesc_output.SetDataType(op.GetInputDescByName("x1").GetDataType());
    tensordesc_output.SetFormat(op.GetInputDescByName("x1").GetFormat());
    // 直接将输入x1的Tensor描述信息赋给输出
    (void)op.UpdateOutputDesc("y", tensordesc_output);

    return GRAPH_SUCCESS;
}

IMPLEMT_VERIFIER(AddDSL, AddDSLVerify)
{
    // 校验算子的两个输入的数据类型是否一致，若不一致，则返回失败。
    if (op.GetInputDescByName("x1").GetDataType() != op.GetInputDescByName("x2").GetDataType()) {
        return GRAPH_FAILED;
    }
    return GRAPH_SUCCESS;
}

COMMON_INFER_FUNC_REG(AddDSL, AddDSLInferShape);
VERIFY_FUNC_REG(AddDSL, AddDSLVerify);

}  // namespace ge
